package server;

import lagern.*;
import lagern.FachPackage.exInvalidCount;
import lagern.FachPackage.exNotEnoughPieces;

@SuppressWarnings("serial")
public class FachImpl extends FachPOA{
	String name;
	int anzahl;
	LagerImpl lager = null;
	
	public FachImpl(String name,LagerImpl lager) {
		this.name = name;
		this.anzahl = 0;
		this.lager = lager;
	}
	
	public void einlagern(String user, int anzahl) throws exInvalidCount {
		if(anzahl < 0) throw new exInvalidCount("Anzahl negativ");
		this.anzahl += anzahl;
		lager.printMonitor(user, "Ins " + name + ": " + anzahl + " Teile eingelagert -- " + this.anzahl + " im Lagerfach");
	} 
    
    public void auslagern(String user, int anzahl) throws exInvalidCount, exNotEnoughPieces {
    	if(anzahl < 0){
    		throw new exInvalidCount("Anzahl negativ");
    	}
    	else if((this.anzahl - anzahl) < 0) {
    		
			throw new exNotEnoughPieces("Nicht genug im Lagerfach vorhanden");
    		
    	}
    	this.anzahl -= anzahl;
    	lager.printMonitor(user, "Aus " + name + ": " + anzahl + " Teile ausgelagert --" + this.anzahl + " im Lagerfach");
    }
        
    public int anzahl() {
    	return anzahl;
    }
    
    public String name() { 
    	return name;
    }
    
    public String toString() {
    	return name + " - " + anzahl;
    }
   
}
